﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;

namespace iBeauty.App.Common
{
    public class EnumBeauty
    {
        public enum ShopType
        {
            [Description("Spa")]
            Spa = 0,
            [Description("Hair Salon")]
            HairSalon = 1,
            [Description("Beauty Salon")]
            BeatySalon = 2
        }

        public enum Gender
        {
            [Description("Male")]
            Male = 0,
            [Description("Female")]
            Female = 1,
        }

        public enum Job
        {
            [Description("Giáo viên")]
            Teacher = 0,
            [Description("Công nhân viên chức")]
            Worker = 1,
            [Description("Nông dân")]
            Farmer = 2,
        }

        public enum ReasonVisit
        {
            [Description("Bạn bè giới thiệu")]
            FriendInvite = 0,
            [Description("Tìm kiếm qua mạng")]
            FindInternet = 1,
            [Description("Lí do khác")]
            Other = 2,
        }

        public enum RoundType
        {
            [Description("Làm tròn lên")]
            RoundUp= 0,
            [Description("Làm tròn xuống")]
            RoundDown = 1,
            [Description("Làm tròn")]
            RoundMid = 2,
        }


        #region enum for search

        public enum Operator
        {
            [Description("Và")]
            And = 0,
            [Description("Hoặc")]
            Or = 1
        }

        public enum Condition
        {
            [Description("Nhỏ hơn hoặc bằng")]
            LessThanOrEqual = 0,
            [Description("Nhỏ hơn")]
            LessThan = 1,
            [Description("Bằng")]
            Equal = 2,
            [Description("Lớn hơn")]
            GreaterThan = 3,
            [Description("Lớn hơn hoặc bằng")]
            GreaterThanOrEqual = 4,
            [Description("Có chứa")]
            Contain = 5
        }

        // Các trường của staff phục vụ cho việc tìm kiếm dữ liệu
        public enum StaffField
        {
            [Description("Mã nhân viên")]
            StaffCode = 0,
            [Description("Tên nhân viên")]
            StaffName = 1
        }

        #endregion


        public static string GetDescriptionFromEnumValue(Enum value)
        {
            var attribute = value.GetType()
                .GetField(value.ToString())
                .GetCustomAttributes(typeof(DescriptionAttribute), false)
                .SingleOrDefault() as DescriptionAttribute;
            return attribute == null ? value.ToString() : attribute.Description;
        }
    }
}
